Google Apps ScriptでスクレイピングしGoogle Calendarを作る
スクレイピング
code:fetch.gs
var html = UrlFetchApp.fetch(url).getContentText()//HTML取得
XMLパーサーはあるけどHTMLパーサーはいい感じのないので正規表現で抽出
正規表現が大きめのテキストでうまく効かないこともあるので行ごとに split したり力技も使う
カレンダーに反映
自分のアカウントの Google Calendar で公開カレンダーを追加する(自分は公開するので)
code:editcalendar.gs
// ID指定で操作するカレンダー取得
var calendar = CalendarApp.getCalendarById(calendarId)
// 日付指定でイベント一覧取得(重複チェックやキャンセルされたイベントの確認用)
var events = calendar.getEventsForDay("2018/4/16")
// イベント追加
var createdEvent = calendar.createEvent(title, start, end,
{ description: description, location: location})
// イベント削除
createdEvent.deleteEvent()
定期的に反映
Apps Scriptで定期実行できる
定期処理はGoogleアカウント単位で20個?くらいが上限っぽいので複数のカレンダーの処理をまとめて行うようにすると大量作成にもある程度たえられる
いい点
改良してほしい点
XPathとかで取得したい
ページのJavaScriptを解釈したい
作ったもの
結構破綻してきてるのであとでなおしたい…
ミュージシャン
映画館
ライブハウス
店
作りたい